The present invention relates to image coding and decoding methods, image coding and decoding apparatuses, and recording media for image coding and decoding programs, more specifically, to an image coding process in which a variable coding of high versatility is performed and an image decoding process performed to the result of this image coding.
Compression coding is essential for efficiently storing or transmitting a digital image. As a method of compressively coding a digital image, used is discrete cosine transformation (DCT) that is a dominant technology in typical standards like JPEG (Joint Photographic Experts Group) and MPEG (Moving Picture Experts Group); In addition, waveform coding methods such as subband coding, wavelet transformation, and fractal are also used as the coding methods as well. To remove redundant signals between images, intra-frame coding is basically preformed based on a spatial correlation within one still image; in addition to this, inter-image coding is also performed in which inter-image prediction using motion compensation is performed based on a temporal correlation between each set of adjacent still images, and a difference signal obtained is subjected to waveform coding. Use of the both methods makes it possible to obtain coded data with a high compression ratio.
In the conventional image coding process according to the MPEG standard or the like, after the DCT process or the like, quantization process is performed, followed by variable length coding process. More specifically, a process such as DCT, subband, or wavelet is performed to digital image data, and the transform coefficients obtained by the above process are quantized using a prescribed quantization scale to generate quantized transform coefficients to which variable length coding process is to be performed.
The quantized transform coefficients obtained by quantization process are arranged in a two-dimensional array, and each coefficient indicates zero or non-zero. In the variable length coding process, zigzag scanning is performed to the coefficients (zero and non-zero) arranged in the two-dimensional array in a prescribed scanning order to rearrange the coefficients in one dimension, and thereafter, events are generated from the one-dimensional array of coefficients. Each event consists of a Run that indicates a number of preceding zero coefficients and a Level that indicates the value of a non-zero coefficient. Then, coding is performed by referring to a variable length code table prepared in advance in which a unique variable length code is allocated to each event consisting of a Run and a Level. Moreover, in stead of this method, an alternative method may be used, such as a method of allocating another code which indicates if a coefficient is a last one, or a method of performing coding with reference to a table where variable length codes are allocated to events each consisting of a set of (Run, Level, Last) obtained by adding a Last indicating if a coefficient is a last one to a set of a Run and a Level.
FIG. 18 is a flowchart illustrating the procedure of a prior art coding process to an event consisting of (Last, Run, Level). Hereinafter a description is given of the conventional coding process with reference to the flow of FIG. 18.
Following the initiation of the process in step 1801, a j-th event is input as an input event which is an object to be processed. In step 1803, comparison is performed between this input event and a reference event included in a variable length code table.
FIGS. 19 through 22 show instances of the variable length code table used for the prior art variable length coding process. As illustrated, in the tables, events each consisting of (Last, Run, Level) correspond to codes. In the figures, xe2x80x9csxe2x80x9d in a xe2x80x9cVLC CODExe2x80x9d cell indicates zero when Level is positive, whereas it indicates 1 when Level is negative. Further, when Last is 0, it indicates that the coefficient concerned is not the last coefficient.
In step 1803 of FIG. 18, by referring to this variable length code table, comparison is performed between the input event and each reference event included in the table consisting of (Last, Run, Level); In step 1804, according to the above comparison process, it is decided whether there is a reference event of which (Last, Run, Level) is identical to that of the input event. When it is decided in step 1804 that there is such reference event, step 1805 is performed, whereas, when such a reference event is not found, step 1806 is performed. At this point, if step 1805 is performed, a variable length code corresponding to the reference event is output, followed by step 1807 which will be described later.
On the other hand, in the case where step 1806 is performed, that is, in the case where the (Last, Run, Level) identical to that of the event as an object to be processed cannot be found when the variable length code table is referred, fixed length coding is performed in step 1806. FIGS. 23 are diagrams conceptually illustrating fixed length coding. As shown in the figures, the codes shown in FIG. 23(a) are allocated to RUNs and the codes shown in FIG. 23(b) allocated to Levels, respectively, and these codes are the results of the coding. In this fixed length coding process, a control code for indicating that a result of the coding is a fixed-length code is added in such a way that it is transmitted prior to the result of the coding, so as to distinguish the code obtained by fixed length coding from the code obtained by variable length coding. This control code is called xe2x80x9cescape code (ECS)xe2x80x9d, and in this case, a code xe2x80x9c0000011xe2x80x9d shown in FIG. 22 is used as the control code. More specifically, when fixed length coding is performed, coded data is obtained comprising a 7-bit ESC code and the code thus allocated subsequent to the ESC code.
Following the performance of step 1805 or step 1806, in the subsequent step 1807, it is decided whether an input event processed is a last input event or not, and if it is decided that the event is the last one, the coding process is completed in step 1808. On the other hand, if it is decided that the event is not the last one, j is incremented by 1 in step 1809 and the operation returns to step 1802, whereby a next input event is processed in the same manner. Thus, the process is continued to the last non-zero coefficient.
As described above, in the prior art image coding process, events are generated for quantized transform coefficients and comparison is made between the event and a reference event included in a variable length code table; if the matching event is found, a variable length code derived from the table is used, whereas, if no matching event is found, a result of fixed length coding, to which a control code (ESC code) is added, is used.
Generally, a variable length code table is formed by investigating statistical distribution using numeral images and allocating shorter codes to the events occurring most frequently, whereby the overall compression ratio is improved. As described above, if coding is not performed using a variable length code table, fixed length coding is performed and the compression ratio is thus degraded. Therefore, it is desired to make a setting which hardly causes fixed length coding. In the prior art image coding, as shown in FIG. 18, if it is decided in step 1804 that there is no reference event concerned, fixed length coding is immediately performed in step 1806, which means that a rate of performing variable length coding with better coding efficiency is directly decided by a rate at which an event concerned is present in a variable length code table.
In image compression coding, however, the statistical distribution of coefficients varies according to the quantization scale, and it is understood that the distribution of coefficients having high compression ratio differs considerably from that having low compression ratio. Therefore, when an appropriate variable length code table is not used for coefficients as objects, the rate at which the event concerned is present in the variable length code table is decreased and the rate of performing fixed length coding is increased, resulting in reduced coding efficiency.
Generally, as the quantization scale is increased, the compression ratio of quantized transform coefficients is increased, but the event derived from such quantized transform coefficients tends to have a smaller value of Level. The variable length code table shown in FIGS. 19 to 22 includes many events having small Level values to which short codes are allocated, and is suitable for use in the case where quantized transform coefficients having relatively high compression ratio are used as processing objects. Therefore, if the quantization scale is small and the compression ratio of quantized transform coefficients is low, many of the events derived have large Level values. So, the rate at which an event concerned is not present in such variable length code table is increased and the events present in the table are often allocated relatively long codes, resulting in increased bit number of the result of the coding. In other words, employing a variable length code table formed for low compression ratio in coding at high compression ratio leads to decrease in coding efficiency.
As described above, when a variable length code table set properly is not used for the coefficients which are the processing objects of variable length coding, since variable length coding cannot be performed and fixed length coding is performed more frequently, and the amount of bits is increased even when variable length coding is performed, the amount of code is increased and improvement of compression ratio is prevented, which is a problem of the prior art image coding process.
The present invention is proposed in view of the above-described problems, and has an object to realize that in image coding, any object of coding in a wide range, which ranges from the one having high compression ratio to the one having low compression ratio, is coded with improved efficiency using a single variable length code table.
To solve the above-described problems, provided is an image coding method of the present invention in which transform coefficients are obtained for an image to be coded by a prescribed transformation method, quantization process is performed to the transform coefficients using a prescribed quantization scale to obtain quantized transform coefficients, and variable length coding process is performed to the quantized transform coefficients referring to a variable length code table comprising a plurality of reference events paired with variable length codes, and the method includes: a first variable length coding step of obtaining a first result of comparison by comparison process between the quantized transform coefficient and a reference event included in the variable length code table, and if the first result of comparison shows xe2x80x9cmatchingxe2x80x9d, obtaining a first result of coding using a variable length code corresponding to the reference event; a second variable length coding step of, if the first result of comparison does not show xe2x80x9cmatchingxe2x80x9d, obtaining a second result of comparison by comparison process between the quantized transform coefficient and a reference event included in the variable length code table subject to a transformation process using a prescribed function, and if the second result of comparison shows xe2x80x9cmatchingxe2x80x9d, obtaining a second result of coding which is distinguishable from the first result of coding using a variable length code corresponding to the reference event; and a particular coding step of, if the second result of comparison does not show xe2x80x9cmatchingxe2x80x9d, performing coding process to the quantized transform coefficient using a prescribed coding system to obtain a result of coding which is distinguishable from each of the first and second results of coding; therefore, a rate of performing variable length coding is raised, and a compression ratio of resultant coded data is increased, thereby improving efficiency of coding process using a variable length code table.
Another image coding method of the present invention in which transform coefficients are obtained for an image to be coded by a prescribed transformation method, quantization process is performed to the transform coefficients using a prescribed quantization scale to obtain quantized transform coefficients, and variable length coding process is performed to the quantized transform coefficients referring to a variable length code table comprising a plurality of reference events paired with variable length codes, includes a variable length coding step which comprises the steps of: performing division process to the quantized transform coefficient using a divisor decided based on the quantization scale, to obtain a quotient and a remainder; obtaining a result of comparison with quotient by comparison process with a reference event included in the variable length code table, using the quotient; and, if the result of comparison with quotient shows xe2x80x9cmatchingxe2x80x9d, employing a variable length code corresponding to the reference event and adding an auxiliary code obtained by performing coding process to the remainder using a prescribed coding system, to obtain a result of coding; The transformation process using division increases a matching rate in comparison, thereby improving efficiency of coding process utilizing a variable length code table.
Still another image coding method of the present invention is an image coding method in which transform coefficients are obtained for an image to be coded by a prescribed transformation method, quantization process is performed to the transform coefficients using a prescribed quantization scale to obtain quantized transform coefficients, and variable length coding process is performed to the quantized transform coefficients referring to a variable length code table comprising a plurality of reference events paired with variable length codes, wherein, a variable length coding step is performed which comprises the steps of: performing transformation process with a prescribed function to a reference event included in the variable length code table, based on the quantization scale, to generate a transformed event; obtaining a result of transformation comparison by comparison process between the quantized transform coefficient and the transformed event; and, if the result of transformation comparison shows xe2x80x9cmatchingxe2x80x9d, obtaining a result of coding using a variable length code corresponding to the reference event based on which the transformed reference event is generated; the transformation process applied to a reference event included in a variable length code table raises a matching rate in comparison, thereby improving efficiency of coding process utilizing a variable length code table.
According to the present invention which is described above, an effect is available that a wide range of images (ranging from the one having a high compression ratio to the one having a low compression ratio) can be coded with improved efficiency, using a single variable length code table.
Further, the image coding apparatus of the present invention can obtain a result of coding having high compression ratio by implementing the above-described image coding method.
Furthermore, in an image decoding method of the present invention, appropriate decoding process is performed to the result of coding obtained by the above image coding method.
Still furthermore, the image decoding apparatus of the present invention can perform appropriate decoding process to the result of coding obtained by the above image coding apparatus.
Moreover, a recording medium for image coding program of the present invention, when an image coding program implementing the above-described image coding method is recorded, implements an image coding apparatus capable of obtaining results of coding with high compression ratio utilizing a device resource, by running the program on a computer system.
In addition, a recording medium for image decoding program of the present invention, when an image decoding program implementing the above-described image decoding method is recorded, implements an image decoding apparatus capable of performing appropriate decoding process to results of coding with high compression ratio utilizing a device resource, by running the program on a computer system.